package model;

import java.util.ArrayList;
/**
 *
 * @author student
 */
public class Immobilie {
    
    private int i_id, fk_b_id, status, plz, nr, etage, etagen, badezimmer, schlafz, baujahr;
    private double zimmer_anz, preis, nebenkst, kaution, provision, wohnfl;
    private String titel, ort, strasse, zustand, heizung, bezugsfrei;
    private String[] bilder;
    private String objbeschreibung, ausst, lage, sonstiges;
    private boolean balkon, keller, garten;
    
    /*
     * Status:
     * 1 = zum Mieten 
     * 2 = zum Kaufen 
     * 
    */
    
    /**
     * Default Kontruktor 
     */
    public Immobilie() 
    {
        this.i_id = 0;
        this.fk_b_id = 0;
        this.status = 1;
        this.etage = 0;
        this.etagen = 0;
        this.badezimmer = 0;
        this.schlafz = 0;
        this.balkon = false;
        this.keller = false;
        this.garten = false;
        this.baujahr = 0;
        this.zimmer_anz = 0;
        this.preis = 9999.0;
        this.nebenkst = 0;
        this.kaution = 0;
        this.provision = 0;
        this.wohnfl = 0;
        this.titel = "";
        this.ort = "";
        this.plz = 0;
        this.strasse = "";
        this.nr = 0;
        this.zustand = "";
        this.heizung = "";
        this.objbeschreibung = "";
        this.ausst = "";
        this.lage = "";
        this.sonstiges = "";
        this.bezugsfrei = "";
        this.bilder = new String[6];
        for(int i=0;i<6;i++){
            this.bilder[i] = "http://www.ppp-projektdatenbank.de/uploads/tx_ppp/platzhalter_34.gif";
        }
    }
    /**
     * 
     * Überladener Kontruktor 
     * @param i_id
     * @param fk_b_id
     * @param status
     * @param etage
     * @param etagen
     * @param badezimmer
     * @param schlafz
     * @param balkon
     * @param keller
     * @param garten
     * @param baujahr
     * @param zimmer_anz
     * @param preis
     * @param nebenkst
     * @param kaution
     * @param provision
     * @param wohnfl
     * @param titel
     * @param ort
     * @param plz
     * @param strasse
     * @param nr
     * @param zustand
     * @param heizung
     * @param objbeschreibung
     * @param ausst
     * @param lage
     * @param sonstiges
     * @param bezugsfrei 
     */
    public Immobilie(int i_id, int fk_b_id, int status, int etage, int etagen, int badezimmer, int schlafz, boolean balkon, boolean keller, boolean garten, int baujahr, double zimmer_anz, double preis, double nebenkst, double kaution, double provision, double wohnfl, String titel, String ort, int plz, String strasse, int nr, String zustand, String heizung, String objbeschreibung, String ausst, String lage, String sonstiges, String bezugsfrei) {
        this.i_id = i_id;
        this.fk_b_id = fk_b_id;
        this.status = status;

        this.etage = etage;
        this.etagen = etagen;
        this.badezimmer = badezimmer;
        this.schlafz = schlafz;
        this.balkon = balkon;
        this.keller = keller;
        this.garten = garten;
        this.baujahr = baujahr;
        this.zimmer_anz = zimmer_anz;
        this.preis = preis;
        this.nebenkst = nebenkst;
        this.kaution = kaution;
        this.provision = provision;
        this.wohnfl = wohnfl;
        this.titel = titel;
        this.ort = ort;
        this.plz = plz;
        this.strasse = strasse;
        this.nr = nr;
        this.zustand = zustand;
        this.heizung = heizung;
        this.objbeschreibung = objbeschreibung;
        this.ausst = ausst;
        this.lage = lage;
        this.sonstiges = sonstiges;
        this.bezugsfrei = bezugsfrei;
        
        this.bilder = new String[6];
        for(int i=0;i<6;i++){
            this.bilder[i] = "http://www.ppp-projektdatenbank.de/uploads/tx_ppp/platzhalter_34.gif";
        }

    }
    /**
     * 
     * @param immobilienListe
     * @return ArrayList<Immobilie> passend
     */
    public ArrayList<Immobilie> suche(ArrayList<Immobilie> immobilienListe){
        ArrayList<Immobilie> passend = new ArrayList<>(); 
        
        for(int i=0;i<immobilienListe.size();i++){
            if(     containsString(immobilienListe.get(i).getOrt().toLowerCase(),this.ort.toLowerCase()) && this.ort.length()>2
                    &&  immobilienListe.get(i).getStatus()==this.status
                    &&  immobilienListe.get(i).getZimmer_anz()>=this.zimmer_anz
                    &&  immobilienListe.get(i).getPreis()<=this.preis
                    &&  immobilienListe.get(i).getWohnfl()>=this.wohnfl)
            {
                passend.add(immobilienListe.get(i));
            }
        }
        return passend;
    }
    
    /**
     * 
     * @param s
     * @param subString
     * @return s.indexOf( subString )
     */
    private static boolean containsString( String s, String subString ) {
        return s.indexOf( subString ) > -1 ? true : false;
    }
    
    
    /**
     * 
     * @return i_id
     */
    public int getI_id() {
        return i_id;
    }
    /**
     * 
     * @param i_id 
     */
    public void setI_id(int i_id) {
        this.i_id = i_id;
    }
    /**
     * 
     * @return fk_b_id
     */
    public int getFk_b_id() {
        return fk_b_id;
    }
    /**
     * 
     * @param fk_b_id 
     */
    public void setFk_b_id(int fk_b_id) {
        this.fk_b_id = fk_b_id;
    }
    /**
     * 
     * @return status
     */
    public int getStatus() {
        return status;
    }
    /**
     * 
     * @param status 
     */
    public void setStatus(int status) {
        this.status = status;
    }
    /**
     * 
     * @return 
     */
    public int getPlz() {
        return plz;
    }
    /**
     * 
     * @param plz 
     */
    public void setPlz(int plz) {
        this.plz = plz;
    }
    /**
     * 
     * @return nr
     */
    public int getNr() {
        return nr;
    }
    /**
     * 
     * @param nr 
     */
    public void setNr(int nr) {
        this.nr = nr;
    }
    /**
     * 
     * @return etage
     */
    public int getEtage() {
        return etage;
    }
    /**
     * 
     * @param etage 
     */
    public void setEtage(int etage) {
        this.etage = etage;
    }
    /**
     * 
     * @return etagen
     */
    public int getEtagen() {
        return etagen;
    }
    /**
     * 
     * @param etagen 
     */
    public void setEtagen(int etagen) {
        this.etagen = etagen;
    }
    /**
     * 
     * @return badezimmer
     */
    public int getBadezimmer() {
        return badezimmer;
    }
    /**
     * 
     * @param badezimmer 
     */
    public void setBadezimmer(int badezimmer) {
        this.badezimmer = badezimmer;
    }
    /**
     * 
     * @return schlafz
     */
    public int getSchlafz() {
        return schlafz;
    }
    /**
     * 
     * @param schlafz 
     */
    public void setSchlafz(int schlafz) {
        this.schlafz = schlafz;
    }
    /**
     * 
     * @return balkon
     */
    public boolean getBalkon() {
        return balkon;
    }
    /**
     * 
     * @param balkon 
     */
    public void setBalkon(boolean balkon) {
        this.balkon = balkon;
    }
    /**
     * 
     * @return keller
     */
    public boolean getKeller() {
        return keller;
    }
    /**
     * 
     * @param keller 
     */
    public void setKeller(boolean keller) {
        this.keller = keller;
    }
    /**
     * 
     * @return garten
     */
    public boolean getGarten() {
        return garten;
    }
     /**
      * 
      * @param garten 
      */
    public void setGarten(boolean garten) {
        this.garten = garten;
    }
    /**
     * 
     * @return baujahr
     */
    public int getBaujahr() {
        return baujahr;
    }
    /**
     * 
     * @param baujahr 
     */
    public void setBaujahr(int baujahr) {
        this.baujahr = baujahr;
    }
    /**
     * 
     * @return zimmer_anz
     */
    public double getZimmer_anz() {
        return zimmer_anz;
    }
    /**
     * 
     * @param zimmer_anz 
     */
    public void setZimmer_anz(double zimmer_anz) {
        this.zimmer_anz = zimmer_anz;
    }
    /**
     * 
     * @return preis
     */
    public double getPreis() {
        return preis;
    }
    /**
     * 
     * @param preis 
     */
    public void setPreis(double preis) {
        this.preis = preis;
    }
    /**
     * 
     * @return nebenkst
     */
    public double getNebenkst() {
        return nebenkst;
    }
    /**
     * 
     * @param nebenkst 
     */
    public void setNebenkst(double nebenkst) {
        this.nebenkst = nebenkst;
    }
    /**
     * 
     * @return kaution
     */
    public double getKaution() {
        return kaution;
    }
    /**
     * 
     * @param kaution 
     */
    public void setKaution(double kaution) {
        this.kaution = kaution;
    }
    /**
     * 
     * @return provision
     */
    public double getProvision() {
        return provision;
    }
    /**
     * 
     * @param provision 
     */
    public void setProvision(double provision) {
        this.provision = provision;
    }
    /**
     * 
     * @return wohnfl
     */
    public double getWohnfl() {
        return wohnfl;
    }
    /**
     * 
     * @param wohnfl 
     */
    public void setWohnfl(double wohnfl) {
        this.wohnfl = wohnfl;
    }
    /**
     * 
     * @return titel
     */
    public String getTitel() {
        return titel;
    }
    /**
     * 
     * @param titel 
     */
    public void setTitel(String titel) {
        this.titel = titel;
    }
    /**
     * 
     * @return ort
     */
    public String getOrt() {
        return ort;
    }
    /**
     * 
     * @param ort 
     */
    public void setOrt(String ort) {
        this.ort = ort;
    }
    /**
     * 
     * @return strasse
     */
    public String getStrasse() {
        return strasse;
    }
    /**
     * 
     * @param strasse 
     */
    public void setStrasse(String strasse) {
        this.strasse = strasse;
    }
    /**
     * 
     * @return zustand
     */
    public String getZustand() {
        return zustand;
    }
    /**
     * 
     * @param zustand 
     */
    public void setZustand(String zustand) {
        this.zustand = zustand;
    }
    /**
     * 
     * @return heizung
     */
    public String getHeizung() {
        return heizung;
    }
    /**
     * 
     * @param heizung 
     */
    public void setHeizung(String heizung) {
        this.heizung = heizung;
    }
    /**
     * 
     * @return bilder
     */
    public String[] getBilder() {
        return bilder;
    }
    /**
     * 
     * @param bilder 
     */
    public void setBilder(int i,String bilder) {
        this.bilder[i] = bilder;
    }
    /**
     * 
     * @return objbeschreibung
     */
    public String getObjbeschreibung() {
        return objbeschreibung;
    }
    /**
     * 
     * @param objbeschreibung 
     */
    public void setObjbeschreibung(String objbeschreibung) {
        this.objbeschreibung = objbeschreibung;
    }
    /**
     * 
     * @return ausst
     */
    public String getAusst() {
        return ausst;
    }
    /**
     * 
     * @param ausst 
     */
    public void setAusst(String ausst) {
        this.ausst = ausst;
    }
    /**
     * 
     * @return lage
     */
    public String getLage() {
        return lage;
    }
    /**
     * 
     * @param lage 
     */
    public void setLage(String lage) {
        this.lage = lage;
    }
    /**
     * 
     * @return sonstiges
     */
    public String getSonstiges() {
        return sonstiges;
    }
    /**
     * 
     * @param sonstiges 
     */
    public void setSonstiges(String sonstiges) {
        this.sonstiges = sonstiges;
    }
    /**
     * 
     * @return bezugsfrei
     */
    public String getBezugsfrei() {
        return bezugsfrei;
    }
    /**
     * 
     * @param bezugsfrei 
     */
    public void setBezugsfrei(String bezugsfrei){
        this.bezugsfrei = bezugsfrei;
    }
    
}


